package com.zmn.oms.dubbo.dto.zmn.order.serviceprovider;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 类描述： 查询工单
 *
 * @author yule
 * @date 2019/05/16 15:30
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class OrderQueryDIO implements Serializable {

    /**
     * 当前第几页 从1 开始
     */
    private Integer pageIndex = 1;

    /**
     * 每页显示多少条
     */
    private Integer pageSize = 0;
    /**
     * 平台
     */
    private Integer plat;

    /**
     * 服务平台
     */
    private Integer platWork;

    /**
     * 服务商id
     */
    private Integer manageCompanyId;

    /**
     * 服务商id
     */
    private List<Integer> companyId;

    /**
     * 渠道id
     */
    private List<Integer> channelIdList;

    /**
     * 工单城市
     */
    private List<Integer> cityIdList;

    /**
     * 工单城市
     */
    private Integer cityId;

    /**
     * 工单区县
     */
    private List<Integer> countyIdList;

    /**
     * 工单区县
     */
    private Integer countyId;
    /**
     * 联系用户姓名
     */
    private String concatUserName;

    /**
     * 用户电话
     */
    private String concatPhone;

    /**
     * 服务分类
     */
    private List<Integer> servCategId;

    /**
     * 是否重复的工单 1 no 2 yes
     */
    private Integer duplicate;

    /**
     * 新单返修 1:新单 2:返修
     */
    private List<Integer> workType;

    /**
     * 完成时间
     */
    private String completeTime;

    /**
     * 接单时间
     */
    private String receiveTime;

    /**
     *  tab 类型
     */
    private Integer tabType;


    /**
     * 平台类型 1 下单平台 2 服务平台
     */
    private Integer platType;

    /**
     * 用户电话
     */
    private List<String> concatPhoneList;

    /**
     * 客户类型
     *
     */
    private Integer userType;

    /**
     * 用户Id
     */
    private Long userId;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    private Integer bizType;

    /**
     * 工单号code
     */
    private Long code;

    /**
     * 工单号后六位
     */
    private String codeEnd6;

    /**
     * 工单状态
     */
    private List<Integer> workStatus;

    /**
     * 工单结果状态
     */
    private Integer workResultStatus;

    /**
     * 工程师Id
     */
    private Integer masterId;

    /**
     * 跟单类型id
     */
    private List<Integer> trackTypeId;

    /**
     * 跟单状态
     */
    private Integer trackStatus;


    /**
     * 产品一级分类id
     */
    private List<Integer> categOneIdList;

    /**
     * 产品二级分类id
     */
    private List<Integer> categTwoIdList;

    /**
     * 保单号
     */
    private String warrantyCode;


    /**
     * 渠道单号
     */
    private String outerId;

    /**
     * 源单号
     */
    private Long originalId;

    /**
     * 是否有投诉  1 no 2 yes
     */
    private Integer complaintStatus;


    /**
     * 预约时间
     */
    private String dutyTime;

    /**
     * 是否存在预约时间
     */
    private Integer existDutyTime;

    /**
     * 是否挂起
     */
    private Integer suspendStatus;

    /**
     * 派单时间
     */
    private String distributeTime;

    /**
     * 上门时间
     */
    private String visitTime;

    /**
     * 评价时间
     */
    private String commentTime;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 收单时间
     */
    private String checkoutTime;

    /**
     * 算账时间
     */
    private String accountTime;

    /**
     * 回访时间
     */
    private String replyVisitTime;

    /**
     * 退款时间
     */
    private String refundAmountTime;

    /**
     * 开发票时间
     */
    private String invoiceTime;

    /**
     * 领单时间
     */
    private String takerTime;

    /**
     * 取消时间
     */
    private String cancelTime;

    /**
     * 工单结果状态
     */
    private List<Integer> resultStatusList;

    /**
     *  配件
     */
    private Integer merPartsType; // 厂商配件类型 ，  0 言而有信自购配件 1 厂商配件，2 无配件

    /**
     * 配件审核状态 (厂商配件)
     */
    private Integer partReviewStatus;

    /**
     * 厂商配件 邮寄状态
     */
    private Integer postStatus;

    private List<Integer> postStatuses;

    /**
     * 工单金额审核状态
     */
    private List<Integer> amountReviewStatus;

    /**
     * 邮寄类型
     */
    private Integer postType;

    /**
     * 邮寄信息
     */
    private OrderFactoryPartPostDIO partPostList;


    /**
     * 不在邮寄状态列表的(厂商配件)
     */
    private List<Integer> notPostStatusList;

    /**
     * 是否存在配件邮寄状态
     * 1 否 2 是
     */
    private Integer existPostStatus;

    /**
     * 店铺id
     */
    private Integer shopId;

}
